home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / 68343ffp.arc / IEFABS.SA < prev    next >
Text File  |  1989-08-30  |  5KB  |  102 lines

  1.        TTL     IEEE FORMAT EQUIVALENT ABS AND NEG (IEFABS/IEFNEG)
  2. ***************************************
  3. * (C) COPYRIGHT 1981 BY MOTOROLA INC. *
  4. ***************************************
  5.  
  6. *************************************************************
  7. *                     IEFABS                                *
  8. *  FAST FLOATING POINT IEEE FORMAT EQUIVALENT ABSOLUTE VALUE*
  9. *                                                           *
  10. *  INPUT:  D7 - IEEE FORMAT NUMBER ARGUMENT                 *
  11. *                                                           *
  12. *  OUTPUT: D7 - IEEE FORMAT NUMBER ABSOLUTE VALUE RESULT    *
  13. *                                                           *
  14. *      CONDITION CODES:                                     *
  15. *              N - CLEARED                                  *
  16. *              Z - SET IF RESULT IS ZERO                    *
  17. *              V - SET IF RESULT IS NAN (NOT-A-NUMBER)      *
  18. *                  (OCCURS ONLY IF INPUT ARGUMENT IS NAN)   *
  19. *              C - UNDEFINED                                *
  20. *              X - UNDEFINED                                *
  21. *                                                           *
  22. *               ALL REGISTERS TRANSPARENT                   *
  23. *                                                           *
  24. *            MAXIMUM STACK USED:   24 BYTES                 *
  25. *                                                           *
  26. *  NOTES:                                                   *
  27. *    1) THIS ROUTINE PROPERLY HANDLES ALL IEEE FLOATING     *
  28. *       POINT VALUES AND NUMBER TYPES.                      *
  29. *    2) IF THE INPUT ARGUMENT IS A NAN (NOT-A-NUMBER) THEN  *
  30. *       IT WILL BE RETURNED AS THE RESULT WITH THE "V" BIT  *
  31. *       SET IN THE CONDITION CODE REGISTER.                 *
  32. *                                                           *
  33. *************************************************************
  34.          PAGE
  35. IEFABS IDNT    1,1  IEEE FORMAT EQUIVALENT ABS AND NEG
  36.  
  37.          OPT       PCS
  38.  
  39.          XDEF      IEFABS    IEEE FORMAT ABSOLUTE VALUE
  40.  
  41.          XREF      9:IEFSOP  SINGLE ARGUMENT CONVERSION ROUTINE
  42.          XREF      9:IEFRTOD7 RETURN CALLER'S ORIGINAL D7 AS RESULT
  43.        XREF    FFPCPYRT        COPYRIGHT NOTICE
  44.  
  45.          SECTION  9
  46.  
  47. ******************************
  48. * ABSOLUTE VALUE ENTRY POINT *
  49. ******************************
  50. IEFABS   BSR       IEFSOP    DIRECT RETURN TO CALLER IF NAN ENCOUNTERED
  51.          NOP                 +0 NORMALIZED RETURN (OR ZERO OR DENORMALIZED)
  52. *                                       +2 INFINITY RETURN
  53.  
  54. * ALL VALUES MAY BE ABSOLUTIZED BY FORCING A PLUS SIGN ON THE ORIGINAL VALUE
  55.          BCLR.B    #7,16(SP)  CLEAR SIGN BIT OF ORIGINAL VALUE
  56.          BRA       IEFRTOD7   AND RETURN ORIGINAL VALUE ALTERED A WEE BIT
  57.          PAGE
  58. *************************************************************
  59. *                     IEFNEG                                *
  60. *  FAST FLOATING POINT IEEE FORMAT EQUIVALENT NEGATE        *
  61. *                                                           *
  62. *  INPUT:  D7 - IEEE FORMAT NUMBER ARGUMENT                 *
  63. *                                                           *
  64. *  OUTPUT: D7 - IEEE FORMAT NUMBER NEGATED RESULT           *
  65. *                                                           *
  66. *      CONDITION CODES:                                     *
  67. *              N - SET IF RESULT IS NEGATIVE                *
  68. *              Z - SET IF RESULT IS ZERO                    *
  69. *              V - SET IF RESULT IS NAN (NOT-A-NUMBER)      *
  70. *                  (OCCURS ONLY IF INPUT ARGUMENT IS NAN)   *
  71. *              C - UNDEFINED                                *
  72. *              X - UNDEFINED                                *
  73. *                                                           *
  74. *               ALL REGISTERS TRANSPARENT                   *
  75. *                                                           *
  76. *           MAXIMUM STACK USED:     24 BYTES                *
  77. *                                                           *
  78. *  NOTES:                                                   *
  79. *    1) THIS ROUTINE PROPERLY HANDLES ALL IEEE FLOATING     *
  80. *       POINT VALUES AND NUMBER TYPES.                      *
  81. *    2) IF THE INPUT ARGUMENT IS A NAN (NOT-A-NUMBER) THEN  *
  82. *       IT WILL BE RETURNED AS THE RESULT WITH THE "V" BIT  *
  83. *       SET IN THE CONDITION CODE REGISTER.                 *
  84. *                                                           *
  85. *************************************************************
  86.          PAGE
  87.          XDEF      IEFNEG    IEEE FORMAT NEGATE
  88.  
  89. **********************
  90. * NEGATE ENTRY POINT *
  91. **********************
  92. IEFNEG   BSR       IEFSOP    DIRECT RETURN TO CALLER IF NAN ENCOUNTERED
  93.          NOP                 +0 NORMALIZED RETURN (OR ZERO OR DENORMALIZED)
  94. *                                       +6 BOTH INFINITY RETURN
  95.  
  96. * ALL VALUES MAY BE NEGATED BY INVERTING THE SIGN BIT OF THE ORIGINAL VALUE
  97.          BCHG.B    #7,16(SP) NEGATE ORIGINAL SIGN BIT
  98.          BRA       IEFRTOD7  AND RETURN THIS MODIFIED ORIGINAL REGISTER
  99.  
  100.          END
  101.  
  102.